#include "widget.h"
#include "ui_widget.h"
#include<QTimer>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setFixedSize(512,768);

    mGameView.setSceneRect(QRect(0,0,512,768));
    mScene.setSceneRect(QRect(0,0,512,768));//图片的大小

    mbackGround1.setPixmap(QPixmap(""));//与QImage用法类似
    mbackGround2.setPixmap(QPixmap(""));
    mPlane.setPixmap(QPixmap(""));

    //设置元素位置
     mPlane.setPos(100,100);
     mbackGround2.setPos(0,-mbackGround2.pixmap().height());
    //图片元素添加到场景
     mScene.addItem(&mbackGround1);
     mScene.addItem(&mbackGround2);
     mScene.addItem(&mPlane);
     //设置视图场景
     mGameView.setScene(&mScene);
     //设置视图的父亲为窗口
     mGameView.setParent(this);
     mGameView.show();


     //开启背景移动定时器
     mBGMoveTimer=new QTimer(this);
     mBGMoveTimer->start(10);
     connect(mBGMoveTimer,&QTimer::timeout,this,&Widget::BGMove);

     /*
       窗口存在多个视图
       视图设置一个场景
       场景添加多个图片元素
       窗口512*768
       视图512*768
       场景 背景图512*768
     */
}

Widget::~Widget()
{
    delete ui;
}

void Widget::BGMove()
{
    mbackGround2.moveBy(0,2);
    mbackGround1.moveBy(0,2);//moveBy 移动量 dx--x方向移动量 dy--y方向移动量

    if(mbackGround1.y() >=mbackGround1.pixmap().height())
    {
        mbackGround1.setY(-mbackGround1.pixmap().height());
    }
    else if(mbackGround2.y() >=mbackGround1.pixmap().height())
    {
        mbackGround2.setY(-mbackGround2.pixmap().height());
    }
}
